Merged from gtk-2-10:
authorFederico Mena Quintero <federico@novell.com>
Fri, 16 Mar 2007 00:53:09 +0000 (00:53 +0000)
committerFederico Mena Quintero <federico@src.gnome.org>
Fri, 16 Mar 2007 00:53:09 +0000 (00:53 +0000)
2007-03-15  Federico Mena Quintero  <federico@novell.com>

Merged from gtk-2-10:

* gtk/gtkfilechooserdefault.c (find_good_size_from_style):
PANGO_PIXELS() gives us device units, which are *points* in
pangocairo's parlance, but we want actual pixels.  So, get the
screen's resolution to compute the actual number of pixels.
Fixes bug #418585.

svn path=/trunk/; revision=17530

ChangeLog
gtk/gtkfilechooserdefault.c

index 77670501ad161c75b50eeca21582ddd488b8b6dc..aed7a8d5defee6d8964033a610bb8fe909658ee4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2007-03-15  Federico Mena Quintero  <federico@novell.com>
+
+       Merged from gtk-2-10:
+
+       * gtk/gtkfilechooserdefault.c (find_good_size_from_style):
+       PANGO_PIXELS() gives us device units, which are *points* in
+       pangocairo's parlance, but we want actual pixels.  So, get the
+       screen's resolution to compute the actual number of pixels.
+       Fixes bug #418585.
+
 2007-03-15  Emmanuele Bassi  <ebassi@gnome.org>
 
        * gtk/gtkrecentmanager.c (gtk_recent_manager_add_item): Remove
index 27f45241e9130353d89fd76c1e3f5b962cb997d1..95d42b679a5a930ec7c7841f4f0b754d15166810 100644 (file)
@@ -7134,12 +7134,24 @@ find_good_size_from_style (GtkWidget *widget,
   gint default_width, default_height;
   int font_size;
   GtkRequisition req;
+  GdkScreen *screen;
+  double resolution;
 
   g_assert (widget->style != NULL);
   impl = GTK_FILE_CHOOSER_DEFAULT (widget);
 
+  screen = gtk_widget_get_screen (widget);
+  if (screen)
+    {
+      resolution = gdk_screen_get_resolution (screen);
+      if (resolution < 0.0) /* will be -1 if the resolution is not defined in the GdkScreen */
+       resolution = 96.0;
+    }
+  else
+    resolution = 96.0; /* wheeee */
+
   font_size = pango_font_description_get_size (widget->style->font_desc);
-  font_size = PANGO_PIXELS (font_size);
+  font_size = PANGO_PIXELS (font_size) * resolution / 72.0;
 
   default_width = font_size * NUM_CHARS;
   default_height = font_size * NUM_LINES;